
<!DOCTYPE html>

<html>
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>What’s New &#8212; pyungo v0.7.0 documentation</title>
    <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
    <script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
    <script src="../_static/jquery.js"></script>
    <script src="../_static/underscore.js"></script>
    <script src="../_static/doctools.js"></script>
    <script src="../_static/language_data.js"></script>
    <link rel="index" title="Index" href="../genindex.html" />
    <link rel="search" title="Search" href="../search.html" />
    <link rel="prev" title="Developer Documentation" href="developer.html" />
   
  <link rel="stylesheet" href="../_static/custom.css" type="text/css" />
  
  
  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />

  </head><body>
  <div class="document">
    
      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
        <div class="sphinxsidebarwrapper">
<p class="logo">
  <a href="../index.html">
    <img class="logo" src="../_static/pyungo.jpg" alt="Logo"/>
    
  </a>
</p>






<p>
<iframe src="https://ghbtns.com/github-btn.html?user=cedricleroy&repo=pyungo&type=star&count=true&size=large&v=2"
  allowtransparency="true" frameborder="0" scrolling="0" width="200px" height="35px"></iframe>
</p>





<h3>Navigation</h3>
<p class="caption"><span class="caption-text">Contents:</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="install.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="gettingstarted.html">Getting Started</a></li>
<li class="toctree-l1"><a class="reference internal" href="features.html">Features</a></li>
<li class="toctree-l1"><a class="reference internal" href="developer.html">Developer Documentation</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">What’s New</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#v0-9-0-june-13-2020">v0.9.0 (June 13, 2020)</a></li>
<li class="toctree-l2"><a class="reference internal" href="#v0-8-1-october-27-2019">v0.8.1 (October 27, 2019)</a></li>
<li class="toctree-l2"><a class="reference internal" href="#v0-8-0-march-17-2019">v0.8.0 (March 17, 2019)</a></li>
<li class="toctree-l2"><a class="reference internal" href="#v0-7-0-february-10-2019">v0.7.0 (February 10, 2019)</a></li>
<li class="toctree-l2"><a class="reference internal" href="#v0-6-0-july-6-2018">v0.6.0 (July 6, 2018)</a></li>
<li class="toctree-l2"><a class="reference internal" href="#v0-5-0-april-3-2018">v0.5.0 (April 3, 2018)</a></li>
<li class="toctree-l2"><a class="reference internal" href="#v0-4-0-march-23-2018">v0.4.0 (March 23, 2018)</a></li>
<li class="toctree-l2"><a class="reference internal" href="#v0-3-0-march-18-2018">v0.3.0 (March 18, 2018)</a></li>
</ul>
</li>
</ul>

<div class="relations">
<h3>Related Topics</h3>
<ul>
  <li><a href="../index.html">Documentation overview</a><ul>
      <li>Previous: <a href="developer.html" title="previous chapter">Developer Documentation</a></li>
  </ul></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
  <h3 id="searchlabel">Quick search</h3>
    <div class="searchformwrapper">
    <form class="search" action="../search.html" method="get">
      <input type="text" name="q" aria-labelledby="searchlabel" />
      <input type="submit" value="Go" />
    </form>
    </div>
</div>
<script>$('#searchbox').show(0);</script>








        </div>
      </div>
      <div class="documentwrapper">
        <div class="bodywrapper">
          

          <div class="body" role="main">
            
  <div class="section" id="what-s-new">
<h1>What’s New<a class="headerlink" href="#what-s-new" title="Permalink to this headline">¶</a></h1>
<p>These are new features and improvements notes for each release.</p>
<div class="section" id="v0-9-0-june-13-2020">
<h2>v0.9.0 (June 13, 2020)<a class="headerlink" href="#v0-9-0-june-13-2020" title="Permalink to this headline">¶</a></h2>
<ul>
<li><p>Drop support / compatibility for Python 2.7.</p></li>
<li><p>inputs / outputs names are now optional.:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="nd">@graph</span><span class="o">.</span><span class="n">register</span><span class="p">()</span>
<span class="k">def</span> <span class="nf">f_my_function</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">):</span>
    <span class="n">c</span> <span class="o">=</span> <span class="n">a</span> <span class="o">+</span> <span class="n">b</span>
    <span class="k">return</span> <span class="n">c</span>
</pre></div>
</div>
</li>
<li><p>Additional argument to <code class="docutils literal notranslate"><span class="pre">Graph</span></code> to prevent inputs deepcopy (<a class="reference external" href="https://github.com/Tosa95">&#64;Tosa95</a>).
This is useful when having large inputs when the <code class="docutils literal notranslate"><span class="pre">deepcopy</span></code> might be slow, but remove inputs
immutability.</p></li>
</ul>
</div>
<div class="section" id="v0-8-1-october-27-2019">
<h2>v0.8.1 (October 27, 2019)<a class="headerlink" href="#v0-8-1-october-27-2019" title="Permalink to this headline">¶</a></h2>
<ul class="simple">
<li><p>Allow optional input data for kwargs (<a class="reference external" href="https://github.com/veronicaguo">&#64;veronicaguo</a>)</p></li>
</ul>
</div>
<div class="section" id="v0-8-0-march-17-2019">
<h2>v0.8.0 (March 17, 2019)<a class="headerlink" href="#v0-8-0-march-17-2019" title="Permalink to this headline">¶</a></h2>
<ul class="simple">
<li><p>Can pass list of <code class="docutils literal notranslate"><span class="pre">Input</span></code> / <code class="docutils literal notranslate"><span class="pre">Output</span></code> to <code class="docutils literal notranslate"><span class="pre">Graph</span></code>.</p></li>
<li><p>Names mapping.</p></li>
<li><p>Inputs validation with JSON Schema.</p></li>
<li><p>Some misc. refactoring and styling.</p></li>
</ul>
</div>
<div class="section" id="v0-7-0-february-10-2019">
<h2>v0.7.0 (February 10, 2019)<a class="headerlink" href="#v0-7-0-february-10-2019" title="Permalink to this headline">¶</a></h2>
<ul>
<li><p>Refactoring, and introduction of <code class="docutils literal notranslate"><span class="pre">Input</span></code> and <code class="docutils literal notranslate"><span class="pre">Output</span></code> objects.</p></li>
<li><p>Contracts feature.:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">graph</span><span class="o">.</span><span class="n">add_node</span><span class="p">(</span>
    <span class="n">my_function</span><span class="p">,</span>
    <span class="n">inputs</span><span class="o">=</span><span class="p">[</span><span class="n">Input</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="s1">&#39;a&#39;</span><span class="p">,</span> <span class="n">contract</span><span class="o">=</span><span class="s1">&#39;&gt;0&#39;</span><span class="p">),</span> <span class="n">Input</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="s1">&#39;b&#39;</span><span class="p">,</span> <span class="n">contract</span><span class="o">=</span><span class="s1">&#39;float&#39;</span><span class="p">)],</span>
    <span class="n">outputs</span><span class="o">=</span><span class="p">[</span><span class="n">Output</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="s1">&#39;g&#39;</span><span class="p">,</span> <span class="n">contract</span><span class="o">=</span><span class="s1">&#39;float&#39;</span><span class="p">)]</span>
<span class="p">)</span>
</pre></div>
</div>
</li>
<li><p>Nodes IDs refactoring (now uses uuid).</p></li>
<li><p>Run topological sort only when needed.</p></li>
<li><p>Everything accessible from <cite>pyungo</cite> __init__ (<a class="reference external" href="https://github.com/nelsontodd">&#64;nelsontodd</a>)</p></li>
<li><p>Docstrings / Sphinx doc / GitHub page</p></li>
</ul>
</div>
<div class="section" id="v0-6-0-july-6-2018">
<h2>v0.6.0 (July 6, 2018)<a class="headerlink" href="#v0-6-0-july-6-2018" title="Permalink to this headline">¶</a></h2>
<ul>
<li><p>Fix “false parallelism” implementation. This require an optional dependency (<cite>multiprocess</cite>
module) which is more friendly to work with stateful objects and multiprocessing.</p></li>
<li><p>Ability to pass predefined inputs at the node definition:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="nd">@graph</span><span class="o">.</span><span class="n">register</span><span class="p">(</span><span class="n">inputs</span><span class="o">=</span><span class="p">[</span><span class="s1">&#39;a&#39;</span><span class="p">,</span> <span class="p">{</span><span class="s1">&#39;b&#39;</span><span class="p">:</span> <span class="mi">2</span><span class="p">}],</span> <span class="n">outputs</span><span class="o">=</span><span class="p">[</span><span class="s1">&#39;c&#39;</span><span class="p">])</span>
<span class="k">def</span> <span class="nf">f_my_function</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">):</span>
    <span class="k">return</span> <span class="n">a</span> <span class="o">+</span> <span class="n">b</span>
</pre></div>
</div>
</li>
</ul>
</div>
<div class="section" id="v0-5-0-april-3-2018">
<h2>v0.5.0 (April 3, 2018)<a class="headerlink" href="#v0-5-0-april-3-2018" title="Permalink to this headline">¶</a></h2>
<ul>
<li><p>Nodes can be run in parallel using Python multiprocessing module:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">graph</span> <span class="o">=</span> <span class="n">Graph</span><span class="p">(</span><span class="n">parallel</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">pool_size</span><span class="o">=</span><span class="mi">3</span><span class="p">)</span>
</pre></div>
</div>
</li>
<li><p><cite>inputs</cite> and <cite>outputs</cite> parameters are mandatory and will raise an explicit error when missing.</p></li>
<li><p>Add a longer test using <cite>pvlib</cite></p></li>
</ul>
</div>
<div class="section" id="v0-4-0-march-23-2018">
<h2>v0.4.0 (March 23, 2018)<a class="headerlink" href="#v0-4-0-march-23-2018" title="Permalink to this headline">¶</a></h2>
<ul>
<li><p>Fix single output when dealing with iterables. Previously, returning one output
with an iterable was resulting in taking the first element.</p></li>
<li><p>Args and kwargs can be used in functions:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="nd">@graph</span><span class="o">.</span><span class="n">register</span><span class="p">(</span>
        <span class="n">inputs</span><span class="o">=</span><span class="p">[</span><span class="s1">&#39;a&#39;</span><span class="p">,</span> <span class="s1">&#39;b&#39;</span><span class="p">],</span>
        <span class="n">args</span><span class="o">=</span><span class="p">[</span><span class="s1">&#39;c&#39;</span><span class="p">],</span>
        <span class="n">kwargs</span><span class="o">=</span><span class="p">[</span><span class="s1">&#39;d&#39;</span><span class="p">],</span>
        <span class="n">outputs</span><span class="o">=</span><span class="p">[</span><span class="s1">&#39;e&#39;</span><span class="p">]</span>
    <span class="p">)</span>
<span class="k">def</span> <span class="nf">f_my_function</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
    <span class="k">return</span> <span class="n">a</span> <span class="o">+</span> <span class="n">b</span> <span class="o">+</span> <span class="n">args</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">&#39;d&#39;</span><span class="p">]</span>
</pre></div>
</div>
</li>
<li><p>Can create a Node without using the decorator:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">graph</span><span class="o">.</span><span class="n">add_node</span><span class="p">(</span><span class="n">f_my_function</span><span class="p">,</span> <span class="n">inputs</span><span class="o">=</span><span class="p">[</span><span class="s1">&#39;a&#39;</span><span class="p">,</span> <span class="s1">&#39;b&#39;</span><span class="p">],</span> <span class="n">outputs</span><span class="o">=</span><span class="p">[</span><span class="s1">&#39;c&#39;</span><span class="p">])</span>
</pre></div>
</div>
</li>
<li><p>DAG pretty print (<cite>graph.dag</cite>)</p></li>
</ul>
</div>
<div class="section" id="v0-3-0-march-18-2018">
<h2>v0.3.0 (March 18, 2018)<a class="headerlink" href="#v0-3-0-march-18-2018" title="Permalink to this headline">¶</a></h2>
<p>First version in pypi</p>
</div>
</div>


          </div>
          
        </div>
      </div>
    <div class="clearer"></div>
  </div>
    <div class="footer">
      &copy;2019, Cedric Leroy.
      
      |
      Powered by <a href="http://sphinx-doc.org/">Sphinx 3.1.0</a>
      &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
      
      |
      <a href="../_sources/source/whatsnew.rst.txt"
          rel="nofollow">Page source</a>
    </div>

    
    <a href="https://github.com/cedricleroy/pyungo" class="github">
        <img style="position: absolute; top: 0; right: 0; border: 0;" src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt="Fork me on GitHub"  class="github"/>
    </a>
    

    
  </body>
</html>